home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / sun / misc / Service.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  3.6 KB  |  139 lines

  1. package sun.misc;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStream;
  6. import java.io.InputStreamReader;
  7. import java.net.URL;
  8. import java.util.ArrayList;
  9. import java.util.Iterator;
  10. import java.util.List;
  11. import java.util.Set;
  12.  
  13. public final class Service {
  14.    private static final String prefix = "META-INF/services/";
  15.  
  16.    private Service() {
  17.    }
  18.  
  19.    private static void fail(Class var0, String var1, Throwable var2) throws ServiceConfigurationError {
  20.       ServiceConfigurationError var3 = new ServiceConfigurationError(var0.getName() + ": " + var1);
  21.       var3.initCause(var2);
  22.       throw var3;
  23.    }
  24.  
  25.    private static void fail(Class var0, String var1) throws ServiceConfigurationError {
  26.       throw new ServiceConfigurationError(var0.getName() + ": " + var1);
  27.    }
  28.  
  29.    private static void fail(Class var0, URL var1, int var2, String var3) throws ServiceConfigurationError {
  30.       fail(var0, var1 + ":" + var2 + ": " + var3);
  31.    }
  32.  
  33.    private static int parseLine(Class var0, URL var1, BufferedReader var2, int var3, List var4, Set var5) throws IOException, ServiceConfigurationError {
  34.       String var6 = var2.readLine();
  35.       if (var6 == null) {
  36.          return -1;
  37.       } else {
  38.          int var7 = var6.indexOf(35);
  39.          if (var7 >= 0) {
  40.             var6 = var6.substring(0, var7);
  41.          }
  42.  
  43.          var6 = var6.trim();
  44.          int var8 = var6.length();
  45.          if (var8 != 0) {
  46.             if (var6.indexOf(32) >= 0 || var6.indexOf(9) >= 0) {
  47.                fail(var0, var1, var3, "Illegal configuration-file syntax");
  48.             }
  49.  
  50.             int var9 = var6.codePointAt(0);
  51.             if (!Character.isJavaIdentifierStart(var9)) {
  52.                fail(var0, var1, var3, "Illegal provider-class name: " + var6);
  53.             }
  54.  
  55.             for(int var10 = Character.charCount(var9); var10 < var8; var10 += Character.charCount(var9)) {
  56.                var9 = var6.codePointAt(var10);
  57.                if (!Character.isJavaIdentifierPart(var9) && var9 != 46) {
  58.                   fail(var0, var1, var3, "Illegal provider-class name: " + var6);
  59.                }
  60.             }
  61.  
  62.             if (!var5.contains(var6)) {
  63.                var4.add(var6);
  64.                var5.add(var6);
  65.             }
  66.          }
  67.  
  68.          return var3 + 1;
  69.       }
  70.    }
  71.  
  72.    private static Iterator parse(Class var0, URL var1, Set var2) throws ServiceConfigurationError {
  73.       InputStream var3 = null;
  74.       BufferedReader var4 = null;
  75.       ArrayList var5 = new ArrayList();
  76.  
  77.       try {
  78.          var3 = var1.openStream();
  79.          var4 = new BufferedReader(new InputStreamReader(var3, "utf-8"));
  80.          int var6 = 1;
  81.  
  82.          while((var6 = parseLine(var0, var1, var4, var6, var5, var2)) >= 0) {
  83.          }
  84.       } catch (IOException var15) {
  85.          fail(var0, ": " + var15);
  86.       } finally {
  87.          try {
  88.             if (var4 != null) {
  89.                var4.close();
  90.             }
  91.  
  92.             if (var3 != null) {
  93.                var3.close();
  94.             }
  95.          } catch (IOException var14) {
  96.             fail(var0, ": " + var14);
  97.          }
  98.  
  99.       }
  100.  
  101.       return var5.iterator();
  102.    }
  103.  
  104.    public static Iterator providers(Class var0, ClassLoader var1) throws ServiceConfigurationError {
  105.       return new LazyIterator(var0, var1, (1)null);
  106.    }
  107.  
  108.    public static Iterator providers(Class var0) throws ServiceConfigurationError {
  109.       ClassLoader var1 = Thread.currentThread().getContextClassLoader();
  110.       return providers(var0, var1);
  111.    }
  112.  
  113.    public static Iterator installedProviders(Class var0) throws ServiceConfigurationError {
  114.       ClassLoader var1 = ClassLoader.getSystemClassLoader();
  115.  
  116.       ClassLoader var2;
  117.       for(var2 = null; var1 != null; var1 = var1.getParent()) {
  118.          var2 = var1;
  119.       }
  120.  
  121.       return providers(var0, var2);
  122.    }
  123.  
  124.    // $FF: synthetic method
  125.    static void access$000(Class var0, String var1) throws ServiceConfigurationError {
  126.       fail(var0, var1);
  127.    }
  128.  
  129.    // $FF: synthetic method
  130.    static Iterator access$100(Class var0, URL var1, Set var2) throws ServiceConfigurationError {
  131.       return parse(var0, var1, var2);
  132.    }
  133.  
  134.    // $FF: synthetic method
  135.    static void access$200(Class var0, String var1, Throwable var2) throws ServiceConfigurationError {
  136.       fail(var0, var1, var2);
  137.    }
  138. }
  139.